package wperror

//400错误（网关使用)
const (
	_                 int32 = iota
	JSONInvalid             //提交的json数据无效
	TokenDoesNotExist       //请求中无token
	VersionInvalid          //协议版本无效
)

//ErrorCode 错误码定义
const (
	CodeBegin       int32 = iota + 100 //错误定义开始
	ParamInvaild                       //参数无效
	UserNotExist                       //用户不存在
	GameKindInvalid                    //游戏场次无效
	AgentIDNull                        //代理商id无效
)
const (
	ErrParamInvaild int32 = ParamInvaild
	ErrUserNotExist       = UserNotExist
)

// agent server error code
const (
	NoSuchAgent      int32 = iota + 200 //没有该代理商
	ACORPWError                         //账号或密码错误
	IPUnmatch                           //IP不匹配
	ProhibitedStatus                    //代理商被封禁
	NoSuchToken                         //没有该令牌
	TokenExpired                        //令牌过期
)

//运营管控的错误
const (
	TargetNotInGame   int32 = iota + 300 //目标没在游戏中
	CurPlayerIsInGame                    //当前玩家在游戏中
	RoomNotExist                         //房间不存在
	RoomHasPlayer                        //房间存在玩家
	PlayerIsInCtrl                       //玩家已经被特控或玩家是陪玩小号
)

// lobby api error code
const (
	ParsingSession int32 = iota + 400 //解析session获取agentID失败
)

//房间错误
const (
	PlayerIsGaming int32 = iota + 500 //玩家在游戏中
	PlayerIsLocked                    //玩家已经被锁定
)

// player server error code
const (
	DataCacheEmpty  int32 = iota + 600 //数据不在内存中
	ChanegeNickName                    //更改昵称失败
	AccountDisable                     //账号禁用
)

const (
	PlayerControlEmpty  int32 = iota + 700  //玩家控制数据不存在
	GetControlCfgError						//控制配置不存在
	GetSysControlCfgEmpty					//系统控制配置不存在
	GetGroupControlEmpty					//群控配置不存在
	GetPersonControlEmpty					//点控配置不存在
	GetHandCardControlEmpty					//手牌配置不存在
	GetTakeCardControlEmpty					//摸牌配置不存在
	GetPlayerControlError				   	//获得玩家控制数据错误
	UpdatePlayerControlError			   	//更新玩家控制数据错误
	InsertPlayerFirstControlError			//插入首次控制数据错误
	InsertPlayerControlError			   	//插入控制数据错误
	GetCardLibraryError					   	//获得牌库错误
	GetCardTypeScoreError					//获得牌型分数错误
)

// other error 从const移动过来的，相关错误可以自己优化自己的功能 ，单独提出来
const (
	ErrorReadDb           int32 = iota + 1000 //读取数据库失败
	ErrorNoBalance                            //余额不足
	ErrorNoAuth                               //没有权限
	ErrorParam                                //请求参数非法
	ErrorPassword                             //密码错误
	ErrorSendMsg                              //发送信息失败
	ErrorRoomFull                             //房间已满
	ErrorInner                                //服务内部错误
	ErrorLogic                                //游戏逻辑出错
	ErrorRequest                              //非法请求（错误请求）
	ErrorNoPlayer                             //玩家不存在
	ErrorUnmarPb                              // 解析pb失败
	ErrorTineout                              //请求超时
	ErrorRoomToken                            //房间token无效
	ErrorGameType                             //游戏无效
	ErrorNoGameApi                            //无有效的游戏服务
	ErrorGameKind                             //子游戏无效
	ErrorRpcCall                              //rpc调用失败
	ErrorCallPaySrv                           //调用支付服务失败
	ErrorCallPlayerSrv                        //调用玩家服务失败
	ErrorBTreeCfg                             //行为树配置错误
	ErrorGameCfg                              //游戏配置信息错误
	ErrorChangeNameTime                       //修改昵称一天只能改一次
	ErrorNameLength                           //名字太长 或者太短
	ErrorBadName                              //此名字不可用 或者包含不能识别字符 重名等
	ErrorInit                                 //初始化出错
	ErrorSms                                  //短信验证码发送失败
	ErrorFrequent                             //请求短信验证码太频繁
	ErrorNoSmsInfo                            //设置个人信息，但是服务器没有获取短信验证码的记录
	ErrorSmsCodeWrong                         //短信验证码错误
	ErrorPasswordLength                       //密码长度不对
	ErrorRealNameLength                       //真名太长
	ErrorNameHan                              //真名只能是汉字
	ErrorWrongPhoneNumber                     //错误的手机号码
	ErrorBindPassword                         //绑定信息密码错误
	ErrorPayInfoLength                        //绑定支付信息的数据太长
	ErrorBindPhoneAlready                     //已经绑定过手机号了
)
